#pragma once

// Types define
using qword = unsigned long long;
using dword = unsigned int;
using word = unsigned short;
using byte = unsigned char;

#define __debug__ 1

// Flags define
#define RUNNING 0x01
#define ERROR 0x02
#define ZERO 0x10
#define POSITIVE 0x20
#define NEGATIVE 0x40
#define CARRY 0x80

// Items define
const byte Code = 0;
const byte Flag = 1;
const byte Stack = 2;
const byte Base = 3;
const byte RCounts = 4;
const byte Data = 5;
const byte Index = 7;

void init();
void changeFlags(byte reg);